package org.firebug.spring.cloud.zuul.filter;

import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;

import javax.servlet.http.HttpServletRequest;

public class PasswordFilter extends ZuulFilter {
    @Override
    public String filterType() {
        return FilterConstants.PRE_TYPE;
    }

    @Override
    public int filterOrder() {
        return 2;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() {
        RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();
        String password = request.getParameter("password");
        //如果用户名和密码都正确，则继续执行下一个filter
//        if("true".equals(password) ){
//            ctx.setSendZuulResponse(true);//会进行路由，也就是会调用api服务提供者
//            ctx.setResponseStatusCode(200);
//            ctx.set("isOK",true);//可以把一些值放到ctx中，便于后面的filter获取使用
//        }else{
//            ctx.setSendZuulResponse(false);//不需要进行路由，也就是不会调用api服务提供者
//            ctx.setResponseStatusCode(401);
//            ctx.set("isOK",false);//可以把一些值放到ctx中，便于后面的filter获取使用
//            //返回内容给客户端
//            ctx.setResponseBody("{\"result\":\"password auth not correct!\"}");// 返回错误内容
//        }
        return null;
    }
}
